home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / AppleSearch / Windows / AppleSearch for Windows SDK / H / DPAPI.H < prev    next >
Encoding:
C/C++ Source or Header  |  1995-11-25  |  25.5 KB  |  818 lines  |  [TEXT/dosa]

  1. //==============================================================================
  2. //    File:        DarkPassageAPI.h
  3. //
  4. //    Contains: #defines, typedefs, and declarations for Dark Passage C Library API
  5. //
  6. //    Copyright (C) 1992-1995 Apple Computer, Inc.  All rights reserved.
  7. //
  8. //    Change History: (moved to the bottom of this file)
  9. //==============================================================================
  10.  
  11. #ifndef DPAPI_H
  12. #define DPAPI_H
  13.  
  14. //==============================================================================
  15. // Dependencies
  16. //==============================================================================
  17.  
  18. #ifndef __WINDOWS_H
  19.     #ifdef WINDOWS
  20.         #include "windows.h"
  21.     #endif // WINDOWS
  22. #endif // __WINDOWS_H
  23.  
  24. #ifndef TYPES_H
  25.     #ifdef WINDOWS
  26.         #include "wtypes.h"
  27.     #endif // WINDOWS
  28.     #ifdef MACINTOSH
  29.         #include "types.h"
  30.     #endif // MACINTOSH
  31. #endif // TYPES_H
  32.  
  33. #ifdef WINDOWS
  34.     #ifndef WFILES_H
  35.         #include "wfiles.h"
  36.     #endif // WFILES_H
  37. #endif // WINDOWS
  38.  
  39. #ifdef MACINTOSH
  40.     #include "Aliases.h"
  41. #endif         // MACINTOSH
  42.  
  43. #ifdef FULL_DOCUMENT
  44.     #ifdef MACINTOSH
  45.         #include "TextEdit.h"
  46.     #endif // MACINTOSH
  47. #endif // FULL_DOCUMENT
  48.  
  49. #if !defined(TCLOCK_H)
  50.     #include "tclock.h"
  51. #endif
  52.  
  53.  
  54. //==============================================================================
  55. // Macros
  56. //==============================================================================
  57.  
  58. #ifdef WINDOWS
  59.     #define MACCODE(x)
  60.     #define WINCODE(x)    x
  61. #else
  62.     #define MACCODE(x)    x
  63.     #define WINCODE(x)
  64. #endif // WINDOWS
  65.  
  66. // macro for including code only pertinent to the 1.1 server
  67. #if defined (AS15)
  68.     #define     AS15CODE(x) x
  69.     #define     AS10CODE(x)
  70. #else   // 1.0 server
  71.     #define     AS10CODE(x)    x
  72.     #define     AS15CODE(x)
  73. #endif
  74.  
  75. // a couple of handy macros
  76. #define minimumOf( a, b )    (((a)<(b))?(a):(b))
  77. #define maximumOf( a, b )    (((a)>(b))?(a):(b))
  78.  
  79. // take care of dpapi users
  80. #if !defined (_EXPORT)
  81.     #define _EXPORT
  82. #endif
  83.  
  84. //==============================================================================
  85. // Constants
  86. //==============================================================================
  87.  
  88. #ifdef WINDOWS
  89.     #define kWindowClassName                "DarkPassageWindow"
  90.  
  91.     // used in windows implementation, the .ini file key for finding the default
  92.     // delivery directory for foreign reporter updates.
  93.     #define kDefaultDeliveryDirKey "DefaultDeliveryDir"
  94. #endif // WINDOWS
  95.  
  96. // errors
  97.  
  98. #define    kNoError                            0
  99.  
  100. // bit-fields
  101.  
  102. #define kLogon_AutoLogonFlag            0x00000001
  103. #define kLogon_DeliverUpdateFlag        0x00000002
  104. #define kLogon_IsGuestFlag                0x00000004
  105.  
  106. // miscellaneous
  107.  
  108. #define kAlphamericSet \
  109.         "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  110.  
  111. enum IDDataType
  112. {
  113.     kProcessSerialNumber,
  114.     kAEAddressDescriptor,
  115.     kOther
  116. };
  117.  
  118. #define    kMaximumInfoSourceLength    31
  119. #define     kMaximumInfoSources            100
  120.  
  121. #define    kObjType_Reporter                1
  122. #define    kObjType_HitList                2
  123. #define     kObjType_NewspaperDate        3
  124.  
  125. #if 0
  126. #define    kObjType_Newspaper            11;
  127. #endif
  128.  
  129. enum ASRequestKind
  130. {
  131.     kASNullRequest,                // [ 0] void request
  132.     kASEnumSourcesRequest,        // [ 1] retrieve a list of info sources
  133.     kASGetSourceInfoRequest,    // [ 2] open an existing index
  134.     kASOpenSearchRequest,        // [ 3] establish a search session
  135.     kASDoSearchRequest,            // [ 4] perform a search operation
  136.     kASGetRelatedTermsRequest,    // [ 5] expand a search term to list of related terms
  137.     kASCloseSearchRequest,        // [ 6] close a search session
  138.     kASLogoffRequest,                 // [ 7] retrieve a list of database objects
  139.     kASGetTextRequest,            // [ 8] retrieve text of an article
  140.     kASGetMatchesRequest,        // [ 9] retrieve match list of an article
  141.     kASGetArticleInfoRequest,    // [10] retrieve title and date of an article
  142.     kASGetFileRequest,            // [11] retrieve original article file
  143.     kASAddReporterRequest,        // [12] add a reporter object
  144.     kASModifyReporterRequest,    // [13] modify a reporter object
  145.     kASGetReporterRequest,        // [14] retrieve a reporter object
  146.     kASDeleteReporterRequest,    // [15] remove a reporter object
  147.     kASEnumReporterRequest,        // [16] retrieve a list of reporter objects
  148.     kASImportReporterRequest,    // [17] import a reporter object    .. not yet converted
  149.     kASExportReporterRequest,    // [18] export a reporter object    .. not yet converted
  150.     kASAddObjectRequest,            // [19] add a database object
  151.     kASModifyObjectRequest,        // [20] modify a database object
  152.     kASGetObjectRequest,            // [21] retrieve a database object
  153.     kASDeleteObjectRequest,        // [22] remove a database object
  154.     kASEnumObjectRequest,         // [23] retrieve a list of database objects
  155.  
  156.     kASInitializeRequest,       // [24] Initialize Apple Search
  157.     kASQuitRequest,            // [25] Tear down connections ... quitting
  158.     ASRegisterRequest,         // [26] Register client with Apple Search
  159.     ASUnregisterRequest,       // [27] UnRegister client with Apple Search
  160.     ASLogonRequest,            // [28] Logon to a server
  161.     ASPassLogonDataRequest,    // [29] Obtain logon permissions
  162.     ASLogoffRequest,           // [30] Logoff a server
  163.     ASImportReporterRequest,   // [31] Import a reporter
  164.     ASExportReporterRequest,   // [32] Export a reporter
  165.  
  166.     #ifdef FULL_DOCUMENT
  167.     , kASOpenReaderRequest, kASGetFullArticleRequest, kASCloseReaderRequest
  168.     #endif    // FULL_DOCUMENT
  169. };
  170.  
  171.  
  172.  
  173.  
  174. //==============================================================================
  175. // Type Definitions
  176. //==============================================================================
  177.  
  178. typedef long                ASErr;                        // standard error type
  179. typedef long    (PASCAL *ASProcPtr)(char*, long);// completion proc pointer type
  180.                                                                 // for all api calls
  181. typedef unsigned long int    ASLogonSessionID;        // server ID for the connection
  182.  
  183. //==============================================================================
  184. // Parameter Blocks
  185. //
  186. //==============================================================================
  187.  
  188. //------------------------------------------------------------------------------
  189. // ASParamBlockHeader
  190. //
  191. // AppleSearch Client C API param block standard header
  192. //------------------------------------------------------------------------------
  193.  
  194. #define ASParamBlockHeader \
  195.     long        userRefCon;                    /* for caller's use */                    \
  196.     ASErr        error;                        /* API call result */                    \
  197.     ASProcPtr    completionProc;        /* ptr to a completion routine */    \
  198.     long        registrationID;            /* from ASRegister */
  199.  
  200.  
  201. //------------------------------------------------------------------------------
  202. // ASUniversalPB
  203. //------------------------------------------------------------------------------
  204.  
  205. struct ASUniversalPB
  206. {
  207.     ASParamBlockHeader
  208. };
  209.  
  210. typedef ASUniversalPB     ASUniversalPB;
  211. typedef ASUniversalPB*    ASUniversalPBPtr;
  212.  
  213.  
  214. //------------------------------------------------------------------------------
  215. // ASRegisterPB
  216. //------------------------------------------------------------------------------
  217.  
  218. struct ASRegisterPB
  219. {
  220.     ASParamBlockHeader
  221.     long            identifier;
  222. };
  223.  
  224. typedef ASRegisterPB    ASRegisterPB;
  225. typedef ASRegisterPB*    ASRegisterPBPtr;
  226.  
  227.  
  228. //------------------------------------------------------------------------------
  229. // ASSelectServerPB
  230. //------------------------------------------------------------------------------
  231.  
  232. struct ASSelectServerPB
  233. {
  234.     ASParamBlockHeader
  235.     Ptr                defaultServer;
  236.     unsigned long    dataSize;
  237.     Ptr                dataPtr;
  238. };
  239.  
  240. typedef ASSelectServerPB     ASSelectServerPB;
  241. typedef ASSelectServerPB*    ASSelectServerPBPtr;
  242.  
  243.  
  244. //------------------------------------------------------------------------------
  245. // ASLogonPB
  246. //------------------------------------------------------------------------------
  247.  
  248. struct ASLogonPB
  249. {
  250.     ASParamBlockHeader
  251.     unsigned long    flags;            // -> deliverUpdate, autoLogon; <- isGuest
  252.     unsigned long    dataSize;
  253.     Ptr                dataPtr;
  254.     unsigned long    defaultUserNameLength;
  255.     char*                defaultUserNameString;
  256.  
  257.     AS15CODE(WINCODE(unsigned long    defaultUserPasswordLength;))
  258.     AS15CODE(WINCODE(char*                defaultUserPasswordString;))
  259.  
  260.     unsigned long    serverNameLength;
  261.     char*                serverNameString;
  262.  
  263.     AS15CODE(WINCODE(unsigned long    serverPathLength;))
  264.     AS15CODE(WINCODE(char*                serverPath;))                            // zone name
  265. };
  266.  
  267. typedef ASLogonPB     ASLogonPB;
  268. typedef ASLogonPB*    ASLogonPBPtr;
  269.  
  270.  
  271. //------------------------------------------------------------------------------
  272. // ASLogoffPB
  273. //------------------------------------------------------------------------------
  274.  
  275. struct ASLogoffPB
  276. {
  277.     ASParamBlockHeader
  278.     Boolean            forceLogoff;
  279. };
  280.  
  281. typedef ASLogoffPB     ASLogoffPB;
  282. typedef ASLogoffPB*    ASLogoffPBPtr;
  283.  
  284.  
  285. //------------------------------------------------------------------------------
  286. // ASSearchSessionPB
  287. //------------------------------------------------------------------------------
  288.  
  289. struct ASSearchSessionPB
  290. {
  291.     ASParamBlockHeader
  292.     long searchSessionID;
  293. };
  294.  
  295. typedef ASSearchSessionPB     ASSearchSessionPB;
  296. typedef ASSearchSessionPB*    ASSearchSessionPBPtr;
  297.  
  298.  
  299. //------------------------------------------------------------------------------
  300. // ASDBObjectInfo
  301. //------------------------------------------------------------------------------
  302.  
  303. struct ASDBObjectInfo
  304. {
  305.     long                dbObjectID;
  306. #if 0
  307.     Str31                dbObjectName;
  308. #endif
  309.     long                dbObjectFlags;
  310.     unsigned long    dbObjectNameLength;
  311.     char*                dbObjectNameString;
  312. };
  313.  
  314. typedef ASDBObjectInfo     ASDBObjectInfo;
  315. typedef ASDBObjectInfo*    ASDBObjectInfoPtr;
  316.  
  317.  
  318. //------------------------------------------------------------------------------
  319. // ASEnumeratePB
  320. //------------------------------------------------------------------------------
  321.  
  322. struct ASEnumeratePB
  323. {
  324.     ASParamBlockHeader
  325.     long                    dbObjectType;
  326.     unsigned long        numberOfDBObjects;// number of objects in the list
  327.     ASDBObjectInfoPtr    dbObjectList;        // an array of ASDBObjectInfo structures
  328. };
  329.  
  330. typedef    ASEnumeratePB     ASEnumeratePB;
  331. typedef ASEnumeratePB*    ASEnumeratePBPtr;
  332.  
  333.  
  334. //------------------------------------------------------------------------------
  335. // ASHitInfo
  336. //------------------------------------------------------------------------------
  337.  
  338. struct ASHitInfo
  339. {
  340.     long                articleID;
  341.     long                modDate;
  342.     unsigned long    fileSize;
  343.     unsigned long    rank;
  344.     unsigned long    titleLength;
  345.     char*                titleString;
  346. };
  347.  
  348. typedef ASHitInfo     ASHitInfo;
  349. typedef ASHitInfo*    ASHitInfoPtr;
  350.  
  351.  
  352. //------------------------------------------------------------------------------
  353. // ASSearchPB
  354. //------------------------------------------------------------------------------
  355.  
  356. struct ASSearchPB
  357. {
  358.     ASParamBlockHeader
  359.     long                searchSessionID;
  360.     long                sourceID;
  361.     unsigned long    queryLength;
  362.     char*                queryString;        // c string, null terminated
  363.     unsigned long    minimumRank;
  364.     unsigned long    maximumHits;        // NOTE: who allocates the memory for hits?
  365.     long                earliestModDate;
  366.     long                searchType;
  367.     long                searchID;
  368.     unsigned long    numberOfHitsReturned;
  369.     unsigned long    totalNumberOfHits;
  370.     ASHitInfoPtr*    hitList;                // packed array of ASHitPtrs
  371. };
  372.  
  373. typedef ASSearchPB     ASSearchPB;
  374. typedef ASSearchPB*    ASSearchPBPtr;
  375.  
  376.  
  377. //------------------------------------------------------------------------------
  378. // ASGetArticleInfoPB
  379. //------------------------------------------------------------------------------
  380.  
  381. struct ASGetArticleInfoPB
  382. {
  383.     ASParamBlockHeader
  384.     long                sourceID;
  385.     long                articleID;
  386.     long                modDate;
  387.     unsigned long    size;
  388.     unsigned long    titleLength;
  389.     char*                titleString;
  390. };
  391.  
  392. typedef    ASGetArticleInfoPB     ASGetArticleInfoPB;
  393. typedef ASGetArticleInfoPB*    ASGetArticleInfoPBPtr;
  394.  
  395.  
  396. //------------------------------------------------------------------------------
  397. // ASGetArticleTextPB
  398. //------------------------------------------------------------------------------
  399.  
  400. struct ASGetArticleTextPB
  401. {
  402.     ASParamBlockHeader
  403.     long                searchSessionID;
  404.     long                sourceID;
  405.     long                articleID;
  406.     unsigned long    startOffset;
  407.     unsigned long    length;
  408.     AS10CODE(MACCODE(Handle    text;))
  409.     AS10CODE(WINCODE(Handle    text;))
  410.     AS15CODE(WINCODE(char     *text;))
  411. };
  412.  
  413. typedef ASGetArticleTextPB    ASGetArticleTextPB;
  414. typedef ASGetArticleTextPB*    ASGetArticleTextPBPtr;
  415.  
  416.  
  417. //------------------------------------------------------------------------------
  418. // ASGetArticleMatchesPB
  419. //------------------------------------------------------------------------------
  420.  
  421. struct ASGetArticleMatchesPB
  422. {
  423.     ASParamBlockHeader
  424.     long                searchSessionID;
  425.     long                sourceID;
  426.     long                articleID;
  427.     unsigned long    startOffset;
  428.     unsigned long    length;
  429.     unsigned long    numberOfHiliteInfoRecs;
  430.     long*                hiliteInfo; // points to first long of array of hiliteinfoRecs
  431. };
  432.  
  433. typedef ASGetArticleMatchesPB    ASGetArticleMatchesPB;
  434. typedef ASGetArticleMatchesPB*    ASGetArticleMatchesPBPtr;
  435.  
  436.  
  437. //------------------------------------------------------------------------------
  438. // ASHiliteInfoRec
  439. //------------------------------------------------------------------------------
  440.  
  441. struct ASHiliteInfoRec
  442. {
  443.     unsigned long    offset;
  444.     unsigned long    length;
  445. };
  446.  
  447. typedef ASHiliteInfoRec     ASHiliteInfoRec;
  448. typedef ASHiliteInfoRec*    ASHiliteInfoRecPtr;
  449.  
  450.  
  451. //------------------------------------------------------------------------------
  452. // ASGetOriginalFilePB
  453. //------------------------------------------------------------------------------
  454.  
  455. struct    ASGetOriginalFilePB
  456. {
  457.     ASParamBlockHeader
  458.     long                                        sourceID;
  459.     long                                        articleID;
  460.     WINCODE(long                            flags;)        // reserved - initialized to 0
  461.     MACCODE(long                            flags;)        // 1=original file; 2=file alias
  462.     AS10CODE(MACCODE(FSSpec                fileDestination;))
  463.     AS15CODE(MACCODE(FSSpec                fileDestination;))
  464.     AS10CODE(MACCODE(AliasHandle        alias;))
  465.     AS15CODE(MACCODE(AliasHandle        alias;))
  466.  
  467.     AS10CODE(WINCODE(FSSpec                fileDestination;))
  468.     AS10CODE(WINCODE(AliasHandle        alias;))
  469.     AS15CODE(WINCODE(unsigned long    fileDestLength;))
  470.     AS15CODE(WINCODE(char                *fileDestination;))
  471. };
  472.  
  473. typedef ASGetOriginalFilePB     ASGetOriginalFilePB;
  474. typedef ASGetOriginalFilePB*    ASGetOriginalFilePBPtr;
  475.  
  476.  
  477. //------------------------------------------------------------------------------
  478. // ASReporterPB
  479. //------------------------------------------------------------------------------
  480.  
  481. struct ASReporterPB
  482. {
  483.     ASParamBlockHeader
  484.     long                reporterID;
  485.     unsigned long    nameLength;
  486.     char*                nameString;
  487.  
  488.     // search parameters
  489.  
  490.     unsigned long    queryLength;
  491.     char*                queryString;            // c string, null terminated
  492.     unsigned long    minimumRank;
  493.     unsigned long    maximumHits;
  494.     long                earliestModDate;
  495.     long                earliestIndexDate;
  496.     unsigned long    numberOfSources;
  497.     long*                sourceList;
  498.  
  499.     // scheduling info
  500.  
  501.     unsigned long    deliveryDays;
  502.     unsigned long    deliveryTime;
  503.     long                deliveryFlags;
  504.     unsigned long    deliveryDirLength;
  505.     AS10CODE(MACCODE(AliasPtr    deliveryDir;))
  506.     AS10CODE(WINCODE(AliasPtr    deliveryDir;))
  507.     AS15CODE(WINCODE(char         *deliveryDir;))
  508. };
  509.  
  510. typedef    ASReporterPB     ASReporterPB;
  511. typedef ASReporterPB*    ASReporterPBPtr;
  512.  
  513.  
  514. //----------------------------------------------------------------------------------------------------
  515. // ASDBObjectPB
  516. //----------------------------------------------------------------------------------------------------
  517.  
  518. struct ASDBObjectPB
  519. {
  520.     ASParamBlockHeader
  521.     long                dbObjectType;
  522.     ASDBObjectInfo    dbObjectInfo;
  523.     long                sourceID;                // used only if type is hit list
  524.     unsigned long    dbObjectDataSize;
  525.     Ptr                dbObjectData;
  526. };
  527.  
  528. typedef ASDBObjectPB     ASDBObjectPB;
  529. typedef ASDBObjectPB*    ASDBObjectPBPtr;
  530.  
  531.  
  532. //------------------------------------------------------------------------------
  533. // ASImportExportPB
  534. //------------------------------------------------------------------------------
  535.  
  536. struct ASImportExportPB
  537. {
  538.     ASParamBlockHeader
  539.     AS15CODE(WINCODE(unsigned long     reporterFileLength;))
  540.     AS15CODE(WINCODE(char                *reporterFile;))    // reporter file nm  - full path
  541.     AS15CODE(MACCODE(FSSpec                reporterFile;))
  542.     AS10CODE(MACCODE(FSSpec                reporterFile;))
  543.     AS10CODE(WINCODE(FSSpec                reporterFile;))
  544.     long                                        reporterID;
  545.     unsigned long                            nameLength;
  546.     char*                                        nameString;
  547. };
  548.  
  549. typedef    ASImportExportPB     ASImportExportPB;
  550. typedef ASImportExportPB*    ASImportExportPBPtr;
  551.  
  552.  
  553. //------------------------------------------------------------------------------
  554. // ASGetRelatedTermsPB
  555. //------------------------------------------------------------------------------
  556.  
  557. struct ASGetRelatedTermsPB
  558. {
  559.     ASParamBlockHeader
  560.     long                sourceID;
  561.     unsigned long    queryLength;
  562.     char*                queryString;
  563.     unsigned long    maximumTerms;
  564.     unsigned long    numberOfTerms;
  565.     StringPtr*        termList;
  566. };
  567.  
  568. typedef    ASGetRelatedTermsPB     ASGetRelatedTermsPB;
  569. typedef ASGetRelatedTermsPB*    ASGetRelatedTermsPBPtr;
  570.  
  571.  
  572. //------------------------------------------------------------------------------
  573. // ASGetSourceInfoPB
  574. //------------------------------------------------------------------------------
  575.  
  576. struct ASGetSourceInfoPB
  577. {
  578.     ASParamBlockHeader
  579.     long                sourceID;
  580.     unsigned long    numberOfDocsIndexed;
  581.     unsigned long    indexFileSize;
  582.     unsigned long    textSizeIndexed;
  583.     unsigned long    lastIndexedDate;
  584.     Str255            description;
  585. };
  586.  
  587. typedef    ASGetSourceInfoPB     ASGetSourceInfoPB;
  588. typedef     ASGetSourceInfoPB*    ASGetSourceInfoPBPtr;
  589.  
  590.  
  591. //------------------------------------------------------------------------------
  592. // ASDeliverUpdatesNowPB
  593. //------------------------------------------------------------------------------
  594.  
  595. struct ASDeliverUpdatesNowPB
  596. {
  597.     ASParamBlockHeader                     // in: final callback defined here
  598.     long                flags;                         // in: bit 0 - call completionProc
  599.                                                         // with interim results
  600.                                                         //    out: bit 1, delivery complete
  601.     char*                currReporter;                // out: current reporter name
  602.     long                articleCntThisReporter;    // out: count of new articles this
  603.                                                         // reporter
  604. };
  605.  
  606. typedef    ASDeliverUpdatesNowPB     ASDeliverUpdatesNowPB;
  607. typedef     ASDeliverUpdatesNowPB*    ASDeliverUpdatesNowPBPtr;
  608.  
  609.  
  610. //------------------------------------------------------------------------------
  611. // ASArticleReaderPB
  612. //------------------------------------------------------------------------------
  613.  
  614. #ifdef FULL_DOCUMENT
  615. struct ASArticleReaderPB
  616. {
  617.     ASParamBlockHeader
  618.     long            readerID;
  619.     long            sourceID;
  620.     long            articleID;
  621. };
  622.  
  623. typedef    ASArticleReaderPB     ASArticleReaderPB;
  624. typedef ASArticleReaderPB*        ASArticleReaderPBPtr;
  625. #endif    // FULL_DOCUMENT
  626.  
  627.  
  628. //------------------------------------------------------------------------------
  629. // ASGetFullArticlePB
  630. //------------------------------------------------------------------------------
  631.  
  632. #ifdef FULL_DOCUMENT
  633. struct ASGetFullArticlePB
  634. {
  635.     ASParamBlockHeader
  636.     long            readerID;
  637.     long            flags;                    // if byte 0 is 1, call ASGetFullArticle()
  638.                                                 //    again for more data
  639.     long            fullTextLength;        // size of Handle
  640.     Handle        fullText;
  641. };
  642.  
  643. typedef ASGetFullArticlePB    ASGetFullArticlePB;
  644. typedef ASGetFullArticlePB*    ASGetFullArticlePBPtr;
  645. #endif    // FULL_DOCUMENT
  646.  
  647.  
  648. //------------------------------------------------------------------------------
  649. // ASFullArticleHeader
  650. //
  651. // Header for fullText of first full document request (subsequently embedded in data).
  652. //------------------------------------------------------------------------------
  653.  
  654. #ifdef FULL_DOCUMENT
  655. struct ASFullArticleHeader
  656. {
  657.     OSType        runType;            // type of following data chunk
  658.     long            runDataLength;    // length of following data chunk (not counting
  659.                                         // this header).  Data may be split across fullText
  660.                                         //    handles returned in ASGetFullArticlePB.
  661.     TextStyle    style;            // defined in TextEdit.h
  662.     short            justification;
  663.     short            flags;              // bit 0 set if 1 byte padding follows data
  664. };
  665.  
  666. typedef ASFullArticleHeader    ASFullArticleHeader;
  667. typedef ASFullArticleHeader*    ASFullArticleHeaderPtr;
  668. #endif    // FULL_DOCUMENT
  669.  
  670. #if defined (WINDOWS)
  671. //    Windows-style declarations for the control blks
  672. typedef ASUniversalPB              _far *LPASUNIVERSALPB;
  673. typedef ASRegisterPB             _far *LPASREGISTERPB;
  674. typedef ASSelectServerPB         _far *LPASSELECTSERVERPB;
  675. typedef ASLogonPB                 _far *LPASLOGONPB;
  676. typedef ASLogoffPB                 _far *LPASLOGOFFPB;
  677. typedef ASSearchSessionPB          _far *LPASSEARCHSESSIONPB;
  678. typedef ASDBObjectInfo             _far *LPASDBOBJECTINFO;
  679. typedef ASEnumeratePB             _far *LPASENUMERATEPB;
  680. typedef ASHitInfo                 _far *LPASHITINFO;
  681. typedef ASSearchPB                 _far *LPASSEARCHPB;
  682. typedef ASGetArticleInfoPB         _far *LPASGETARTICLEINFOPB;
  683. typedef ASGetArticleTextPB     _far *LPASGETARTICLETEXTPB;
  684. typedef ASGetArticleMatchesPB _far *LPASGETARTICLEMATCHESPB;
  685. typedef ASHiliteInfoRec         _far *LPASHILITEINFOREC;
  686. typedef ASGetOriginalFilePB     _far *LPASGETORIGINALFILEPB;
  687. typedef ASReporterPB               _far *LPASREPORTERPB;
  688. typedef ASDBObjectPB             _far *LPASDBOBJECTPB;
  689. typedef ASImportExportPB         _far *LPASIMPORTEXPORTPB;
  690. typedef ASGetRelatedTermsPB     _far *LPASGETRELATEDTERMSPB;
  691. typedef ASGetSourceInfoPB         _far *LPASGETSOURCEINFOPB;
  692. typedef ASDBObjectInfo             _far *LPASDBOBJECTINFO;
  693. typedef ASDeliverUpdatesNowPB    _far *LPASDELIVERUPDATESNOWPB;
  694. #endif
  695.  
  696. //==============================================================================
  697. // Function Prototypes
  698. //==============================================================================
  699.  
  700. #ifdef __cplusplus
  701. extern "C"
  702. {
  703. #endif
  704.  
  705. //------------------------------------------------------------------------------
  706. // "House keeping" routines
  707. //------------------------------------------------------------------------------
  708.  
  709. void    _EXPORT PASCAL ASInitialize(void);     // must be called to initialize internal globals
  710. void    _EXPORT PASCAL ASQuit(void);           // called when your application is ready to quit
  711.  
  712. //
  713. //    The 1.0 version of the Windows version of AS requires that the registration
  714. //    id returned from ASRegister be passed to the DoIdle(long) function.  When
  715. //    a client is not registered with DP, the client has no need to call DoIdle(long),
  716. //    or if they prefer, pass a 0 as the argument value when not logged on. 
  717. //
  718. //    The 1.1 version of the Mac takes no argument.
  719.  
  720. MACCODE(ASErr    PASCAL ASDoIdle(void);)    // called in each waitNextEvent loop iteration
  721. WINCODE(ASErr    _EXPORT PASCAL ASDoIdle(long regID);) // call each WINMAIN msg loop iteration
  722. MACCODE(ASErr    PASCAL ASRegister(ASRegisterPBPtr pb);)
  723. WINCODE(ASErr    _EXPORT PASCAL ASRegister(HWND hwndApp, HWND hwndHelp, ASRegisterPBPtr pb);)
  724. ASErr    _EXPORT PASCAL ASUnregister(ASRegisterPBPtr pb);
  725. ASErr    _EXPORT PASCAL ASSelectServer(ASSelectServerPBPtr pb);
  726. ASErr    _EXPORT PASCAL ASLogon(ASLogonPBPtr pb);
  727. ASErr    _EXPORT PASCAL ASLogoff(ASLogoffPBPtr pb);
  728.  
  729. //BEGINPRIVATE: this is a private function to DarkPassage, not a part of published API
  730. ASErr    _EXPORT PASCAL ASGetSourceInfo    (ASGetSourceInfoPBPtr pb, Boolean async);
  731. //ENDPRIVATE
  732.  
  733.  
  734. //------------------------------------------------------------------------------
  735. // Search routines
  736. //------------------------------------------------------------------------------
  737.  
  738. ASErr    _EXPORT PASCAL ASOpenSearchSession(ASSearchSessionPBPtr pb, Boolean async);
  739. ASErr    _EXPORT PASCAL ASCloseSearchSession(ASSearchSessionPBPtr pb, Boolean async);
  740. ASErr    _EXPORT PASCAL ASSearch(ASSearchPBPtr pb, Boolean async);
  741.  
  742.  
  743. //------------------------------------------------------------------------------
  744. // Data retrieval routines
  745. //------------------------------------------------------------------------------
  746.  
  747. ASErr    _EXPORT PASCAL ASEnumerateSources(ASEnumeratePBPtr pb, Boolean async);
  748. ASErr    _EXPORT PASCAL ASGetArticleText(ASGetArticleTextPBPtr pb, Boolean async);
  749. ASErr    _EXPORT PASCAL ASGetArticleMatches(ASGetArticleMatchesPBPtr pb, Boolean async);
  750. ASErr    _EXPORT PASCAL ASGetArticleInfo(ASGetArticleInfoPBPtr pb, Boolean async);
  751. ASErr    _EXPORT PASCAL ASGetOriginalFile(ASGetOriginalFilePBPtr pb, Boolean async);
  752. ASErr    _EXPORT PASCAL ASGetRelatedTerms(ASGetRelatedTermsPBPtr pb, Boolean async);
  753.  
  754. ASErr _EXPORT PASCAL ASDeliverUpdatesNow(ASDeliverUpdatesNowPBPtr pb, Boolean async);
  755.  
  756. //------------------------------------------------------------------------------
  757. // Reporter routines
  758. //------------------------------------------------------------------------------
  759.  
  760. ASErr    _EXPORT PASCAL ASAddReporter(ASReporterPBPtr pb, Boolean async);
  761. ASErr    _EXPORT PASCAL ASModifyReporter(ASReporterPBPtr pb, Boolean async);
  762. ASErr    _EXPORT PASCAL ASGetReporter(ASReporterPBPtr pb, Boolean async);
  763. ASErr    _EXPORT PASCAL ASDeleteReporter(ASReporterPBPtr pb, Boolean async);
  764. ASErr    _EXPORT PASCAL ASEnumerateReporters(ASEnumeratePBPtr pb, Boolean async);
  765. ASErr    _EXPORT PASCAL ASImportReporter(ASImportExportPBPtr pb, Boolean async);
  766. ASErr    _EXPORT PASCAL ASExportReporter(ASImportExportPBPtr pb, Boolean async);
  767.  
  768.  
  769. //------------------------------------------------------------------------------
  770. // DBObject routines
  771. //------------------------------------------------------------------------------
  772.  
  773. ASErr    _EXPORT PASCAL ASAddDBObject(ASDBObjectPBPtr pb, Boolean async);
  774. ASErr    _EXPORT PASCAL ASModifyDBObject(ASDBObjectPBPtr pb, Boolean async);
  775. ASErr    _EXPORT PASCAL ASGetDBObject(ASDBObjectPBPtr pb, Boolean async);
  776. ASErr    _EXPORT PASCAL ASDeleteDBObject(ASDBObjectPBPtr pb, Boolean async);
  777. ASErr    _EXPORT PASCAL ASEnumerateDBObjects(ASEnumeratePBPtr pb, Boolean async);
  778.  
  779.  
  780. //------------------------------------------------------------------------------
  781. // Full document routines
  782. //------------------------------------------------------------------------------
  783.  
  784. #ifdef FULL_DOCUMENT
  785. ASErr    _EXPORT PASCAL ASOpenArticleReader(ASArticleReaderPBPtr pb, Boolean async);
  786. ASErr    _EXPORT PASCAL ASGetFullArticle(ASGetFullArticlePBPtr pb, Boolean async);
  787. ASErr    _EXPORT PASCAL ASCloseArticleReader(ASArticleReaderPBPtr pb, Boolean async);
  788. #endif    // FULL_DOCUMENT
  789.  
  790.  
  791.  
  792. #ifdef __cplusplus
  793. }
  794. #endif
  795.  
  796.  
  797. #endif // DPAPI_H
  798.  
  799. //
  800. // Change History:
  801. //
  802. //        Date        By        Description
  803. //        ----        --        -----------
  804. //        93/12/14    JPS        Added typedef for ASLogonSessionID.
  805. //
  806. // Change History:
  807. //
  808. //        Date        By        Description
  809. //        ----        --        -----------
  810. //        03/31/94    SW        Added {#include "windows.h"}.
  811. //
  812. //
  813. // $Log: /bogart/dp/shared/DPAPI.H $
  814. //
  815. // 36    4/04/95 1:51p Rjohnson
  816. //
  817.  
  818.